/* Copyright (c) [2025] [zhi1208@126.com]
 * SPDX-License-Identifier: MIT
 */

#pragma once

/*********************
 *      INCLUDES
 *********************/
#include "lvgl.h"

/*********************
 *      DEFINES
 *********************/

/**********************
 *      TYPEDEFS
 **********************/
typedef struct hmi_pg hmi_pg_t;

struct hmi_pg
{
    lv_obj_t *root;
    const char *name;
    bool del_on_pop;
    int32_t statck_refs;

    uint32_t bg_color;
    int32_t bg_y;

    void (*create)();
    void (*del)();

    void (*enter_anim)(lv_anim_completed_cb_t cb, uint32_t delay);
    uint32_t (*exit_anim)(lv_anim_completed_cb_t cb, hmi_pg_t *enter_pg);
};

/**********************
 * GLOBAL PROTOTYPES
 **********************/

/**********************
 *      MACROS
 **********************/
